
from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能

class 技能0(被动技能):
    名称 = '剑影太刀精通'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10

    # def 加成倍率(self, 武器类型):
    #    if self.等级 == 0:
    #        return 1.0
    #    else:
    #        return round(1.0 + 0.02 * self.等级, 5)

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.00 + 0.02 * self.等级, 5)


class 技能1(被动技能):
    名称 = '幻鬼之力'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.10 + 0.02 * self.等级, 5)


class 技能2(被动技能):
    名称 = '鬼夜'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.035 + 0.02 * self.等级, 5)


class 技能3(被动技能):
    名称 = '鬼咲'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 技能4(被动技能):
    名称 = '睥睨万物'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能5(主动技能):
    名称 = "鬼步"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [20, 210]
    无色消耗 = 0
    data0 = [0, 907, 999, 1091, 1182, 1275, 1367, 1459, 1551, 1643, 1735, 1828, 1919, 2012, 2103, 2195, 2288, 2379, 2472, 2563, 2656, 2748, 2840, 2932, 3024, 3116, 3208, 3300, 3392, 3484, 3576, 3669, 3760, 3853, 3944, 4037, 4129, 4220, 4313, 4404, 4497, 4588, 4681, 4773, 4865, 4957, 5050, 5141, 5233, 5325, 5417, 5509, 5601, 5694, 5785, 5878, 5969, 6062, 6154, 6245, 6338, 6429, 6522, 6614, 6706, 6798, 6890, 6982, 7075, 7166, 7259]
    hit0 = 3
    TP成长 = 0.1
    TP上限 = 7


class 技能6(主动技能):
    名称 = "鬼连斩"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [20, 210]
    无色消耗 = 0
    data0 = [0, 736, 811, 886, 960, 1035, 1111, 1185, 1260, 1334, 1409, 1484, 1558, 1633, 1708, 1782, 1858, 1933, 2007, 2082, 2157, 2231, 2306, 2381, 2455, 2530, 2604, 2680, 2755, 2829, 2904, 2979, 3053, 3128, 3203, 3277, 3353, 3428, 3502, 3577, 3652, 3726, 3801, 3875, 3950, 4026, 4100, 4175, 4250, 4324, 4399, 4474, 4548, 4623, 4698, 4772, 4848, 4923, 4997, 5072, 5146, 5221, 5296, 5370, 5445, 5521, 5595, 5670, 5745, 5819, 5894]
    hit0 = 1
    data1 = [0, 884, 974, 1063, 1153, 1242, 1333, 1422, 1512, 1601, 1691, 1780, 1871, 1960, 2050, 2139, 2229, 2318, 2409, 2498, 2588, 2677, 2767, 2858, 2947, 3037, 3126, 3216, 3305, 3396, 3485, 3575, 3664, 3754, 3843, 3934, 4023, 4113, 4202, 4292, 4382, 4472, 4561, 4651, 4740, 4830, 4921, 5010, 5100, 5189, 5279, 5368, 5459, 5548, 5638, 5727, 5817, 5907, 5997, 6086, 6176, 6265, 6355, 6445, 6535, 6624, 6714, 6803, 6893, 6984, 7073]
    hit1 = 1
    data2 = [0, 1326, 1461, 1595, 1729, 1864, 1999, 2133, 2267, 2402, 2537, 2671, 2806, 2940, 3075, 3209, 3344, 3479, 3613, 3747, 3882, 4017, 4151, 4286, 4420, 4555, 4690, 4824, 4958, 5093, 5228, 5363, 5496, 5631, 5766, 5901, 6034, 6169, 6304, 6439, 6574, 6707, 6842, 6977, 7112, 7245, 7380, 7515, 7650, 7784, 7918, 8053, 8188, 8322, 8457, 8591, 8726, 8861, 8995, 9130, 9264, 9399, 9533, 9668, 9802, 9937, 10071, 10206, 10341, 10475, 10609]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能7(被动技能):
    名称 = '鬼连斩：极'
    所在等级 = 30
    额外加成 = 1
    等级上限 = 1
    等级精通 = 1

    data0 = [0, 1126, 1241, 1355, 1470, 1583, 1697, 1812, 1926, 2041, 2155, 2270, 2383, 2498, 2612, 2726, 2841, 2955, 3070, 3184, 3298, 3412, 3527, 3641, 3755, 3870, 3984, 4098, 4212, 4327, 4441, 4556, 4670, 4784, 4898, 5012, 5127, 5241, 5356, 5470, 5585, 5698, 5812, 5927, 6041, 6156, 6270, 6385, 6499, 6613, 6727, 6842, 6956, 7070, 7185, 7299, 7413, 7527, 7642, 7756, 7871, 7985, 8099, 8213, 8327, 8442, 8556, 8671, 8785, 8900, 9013]
    hit0 = 3

    def 获取百分比(self, lv):
        return self.data0[lv] * self.hit0 * self.额外加成

    def 等效CD(self, **argv):
        # 无冷却
        return 0

class 技能8(主动技能):
    名称 = "幻鬼：一闪"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [32, 336]
    无色消耗 = 0
    data0 = [0, 3035, 3343, 3651, 3959, 4267, 4575, 4883, 5191, 5499, 5807, 6115, 6423, 6731, 7039, 7347, 7655, 7963, 8270, 8578, 8886, 9194, 9502, 9810, 10118, 10426, 10734, 11042, 11350, 11658, 11966, 12274, 12582, 12890, 13198, 13506, 13814, 14122, 14430, 14738, 15046, 15353, 15661, 15969, 16277, 16585, 16893, 17201, 17509, 17817, 18125, 18433, 18742, 19050, 19358, 19666, 19974, 20282, 20590, 20898, 21206, 21514, 21822, 22130, 22437, 22745, 23053, 23361, 23669, 23977, 24285]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能9(主动技能):
    名称 = "鬼连牙"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [46, 483]
    无色消耗 = 0
    data0 = [0, 5570, 6136, 6701, 7266, 7830, 8395, 8961, 9526, 10091, 10656, 11221, 11787, 12352, 12917, 13482, 14047, 14613, 15178, 15743, 16308, 16873, 17439, 18004, 18568, 19133, 19698, 20263, 20829, 21394, 21959, 22524, 23090, 23655, 24220, 24785, 25350, 25916, 26481, 27046, 27611, 28176, 28742, 29306, 29871, 30436, 31001, 31566, 32132, 32697, 33262, 33827, 34392, 34958, 35523, 36088, 36653, 37218, 37784, 38349, 38914, 39478, 40043, 40609, 41174, 41739, 42304, 42869, 43435, 44000, 44565]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能10(主动技能):
    名称 = "幻鬼：连斩"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [60, 600]
    无色消耗 = 0
    data0 = [0, 759, 835, 913, 990, 1067, 1144, 1222, 1298, 1375, 1453, 1529, 1607, 1683, 1761, 1838, 1914, 1992, 2068, 2146, 2223, 2300, 2377, 2454, 2531, 2608, 2686, 2762, 2840, 2916, 2993, 3071, 3147, 3225, 3301, 3379, 3456, 3533, 3610, 3687, 3764, 3841, 3918, 3995, 4073, 4149, 4226, 4304, 4380, 4458, 4534, 4612, 4689, 4765, 4843, 4919, 4997, 5074, 5151, 5228, 5305, 5382, 5459, 5537, 5613, 5691, 5767, 5844, 5922, 5998, 6076]
    hit0 = 1
    data1 = [0, 1012, 1115, 1217, 1321, 1423, 1526, 1628, 1732, 1834, 1937, 2039, 2143, 2245, 2348, 2450, 2553, 2656, 2759, 2861, 2964, 3067, 3170, 3272, 3375, 3478, 3581, 3683, 3786, 3889, 3992, 4094, 4197, 4300, 4403, 4505, 4608, 4711, 4814, 4916, 5019, 5121, 5225, 5327, 5430, 5532, 5636, 5738, 5841, 5943, 6047, 6149, 6252, 6354, 6458, 6560, 6663, 6765, 6869, 6971, 7074, 7176, 7280, 7382, 7485, 7587, 7689, 7793, 7896, 7998, 8100]
    hit1 = 1
    data2 = [0, 1266, 1394, 1522, 1651, 1779, 1907, 2036, 2164, 2293, 2421, 2549, 2678, 2806, 2934, 3063, 3191, 3321, 3449, 3577, 3706, 3834, 3962, 4091, 4219, 4347, 4476, 4604, 4733, 4861, 4989, 5118, 5246, 5374, 5503, 5631, 5759, 5889, 6017, 6146, 6274, 6402, 6531, 6659, 6788, 6916, 7044, 7173, 7301, 7429, 7558, 7686, 7814, 7943, 8071, 8200, 8328, 8457, 8586, 8714, 8842, 8971, 9099, 9228, 9356, 9484, 9613, 9741, 9869, 9998, 10126]
    hit2 = 1
    data3 = [0, 2025, 2231, 2436, 2642, 2847, 3053, 3258, 3464, 3669, 3875, 4079, 4286, 4490, 4695, 4901, 5106, 5312, 5517, 5723, 5928, 6134, 6339, 6545, 6750, 6956, 7161, 7367, 7572, 7778, 7983, 8189, 8394, 8600, 8805, 9011, 9216, 9422, 9627, 9832, 10038, 10243, 10449, 10654, 10860, 11065, 11271, 11476, 11682, 11887, 12093, 12298, 12504, 12709, 12915, 13120, 13326, 13531, 13737, 13942, 14148, 14353, 14559, 14764, 14969, 15175, 15380, 15586, 15791, 15997, 16202]
    hit3 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能11(主动技能):
    名称 = "共鸣：离魂一闪"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 12
    MP = [61, 640]
    无色消耗 = 0
    data0 = [0, 2381, 2623, 2864, 3106, 3347, 3589, 3831, 4072, 4314, 4555, 4797, 5039, 5280, 5522, 5762, 6004, 6247, 6487, 6729, 6970, 7212, 7454, 7695, 7937, 8178, 8420, 8662, 8903, 9145, 9386, 9628, 9870, 10111, 10353, 10594, 10836, 11078, 11319, 11561, 11802, 12044, 12286, 12527, 12769, 13010, 13252, 13494, 13735, 13977, 14218, 14460, 14702, 14943, 15185, 15426, 15668, 15910, 16151, 16393, 16634, 16876, 17118, 17359, 17601, 17842, 18084, 18326, 18566, 18809, 19049]
    hit0 = 1
    data1 = [0, 5555, 6120, 6683, 7246, 7811, 8374, 8938, 9502, 10065, 10629, 11192, 11757, 12320, 12883, 13448, 14011, 14575, 15138, 15702, 16266, 16829, 17394, 17957, 18520, 19084, 19648, 20212, 20775, 21339, 21903, 22466, 23031, 23594, 24157, 24721, 25285, 25849, 26412, 26975, 27540, 28103, 28667, 29231, 29794, 30358, 30922, 31486, 32049, 32612, 33177, 33740, 34304, 34868, 35431, 35995, 36558, 37123, 37686, 38249, 38814, 39377, 39941, 40505, 41068, 41632, 42195, 42760, 43323, 43886, 44451]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能12(主动技能):
    名称 = "魂破斩"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 12
    MP = [129, 1083]
    无色消耗 = 1
    data0 = [0, 9946, 10954, 11963, 12973, 13982, 14991, 16000, 17008, 18018, 19027, 20036, 21044, 22054, 23064, 24072, 25081, 26090, 27099, 28108, 29117, 30125, 31135, 32145, 33153, 34162, 35171, 36181, 37189, 38198, 39207, 40217, 41226, 42234, 43244, 44252, 45262, 46271, 47279, 48288, 49298, 50308, 51315, 52325, 53334, 54343, 55352, 56361, 57369, 58379, 59389, 60396, 61406, 62415, 63425, 64432, 65442, 66451, 67460, 68470, 69478, 70488, 71496, 72506, 73514, 74523, 75532, 76542, 77551, 78559, 79569]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.24
        self.CDR *= 0.89


class 技能13(主动技能):
    名称 = "共鸣：鬼灵斩"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [129, 1083]
    无色消耗 = 1
    data0 = [0, 11312, 12460, 13608, 14756, 15904, 17051, 18200, 19348, 20494, 21642, 22790, 23938, 25085, 26234, 27382, 28529, 29677, 30824, 31972, 33119, 34268, 35416, 36563, 37711, 38858, 40006, 41154, 42302, 43450, 44597, 45746, 46892, 48040, 49188, 50336, 51484, 52632, 53780, 54927, 56074, 57223, 58370, 59518, 60666, 61814, 62961, 64108, 65257, 66404, 67552, 68700, 69848, 70995, 72144, 73291, 74438, 75586, 76734, 77882, 79029, 80178, 81326, 82472, 83620, 84768, 85916, 87063, 88212, 89360, 90506]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能14(主动技能):
    名称 = "幻鬼：回天"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [170, 1428]
    无色消耗 = 1
    data0 = [0, 5117, 5634, 6154, 6673, 7192, 7712, 8230, 8750, 9268, 9787, 10307, 10826, 11345, 11864, 12382, 12902, 13421, 13940, 14459, 14979, 15497, 16016, 16535, 17054, 17574, 18093, 18611, 19131, 19649, 20169, 20688, 21207, 21727, 22244, 22764, 23284, 23802, 24322, 24840, 25359, 25879, 26397, 26917, 27436, 27955, 28474, 28992, 29512, 30031, 30550, 31070, 31589, 32107, 32626, 33146, 33665, 34184, 34702, 35221, 35741, 36260, 36779, 37299, 37817, 38336, 38855, 39374, 39894, 40412, 40932]
    hit0 = 1
    data1 = [0, 7674, 8453, 9232, 10010, 10789, 11567, 12346, 13124, 13903, 14681, 15460, 16238, 17017, 17796, 18575, 19353, 20132, 20911, 21690, 22467, 23246, 24024, 24803, 25581, 26360, 27139, 27918, 28697, 29475, 30253, 31032, 31811, 32589, 33368, 34147, 34926, 35704, 36483, 37261, 38039, 38817, 39596, 40375, 41154, 41932, 42711, 43490, 44269, 45048, 45825, 46604, 47383, 48162, 48940, 49719, 50497, 51276, 52054, 52833, 53611, 54390, 55168, 55947, 56726, 57505, 58283, 59062, 59841, 60620, 61399]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 4
        self.power0 = 0.25
        self.power1 = 0.25
        self.data2 = self.data1
        self.hit2 = 20
        self.power2 = 0.065

class 技能15(主动技能):
    名称 = "冥灵断魂斩"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [299, 2511]
    无色消耗 = 2
    data0 = [0, 30510, 33606, 36701, 39796, 42891, 45986, 49082, 52177, 55272, 58368, 61464, 64557, 67653, 70749, 73845, 76939, 80035, 83130, 86224, 89320, 92416, 95511, 98606, 101702, 104796, 107892, 110987, 114083, 117178, 120274, 123369, 126463, 129559, 132655, 135749, 138845, 141941, 145034, 148130, 151226, 154322, 157416, 160512, 163608, 166702, 169797, 172893, 175988, 179084, 182179, 185273, 188369, 191465, 194560, 197655, 200751, 203847, 206940, 210036, 213132, 216226, 219322, 222418, 225514, 228607, 231703, 234799, 237894, 240989, 244085]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.23


class 技能16(主动技能):
    名称 = "冥夜鬼天杀"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [998, 8383]
    无色消耗 = 5
    data0 = [0, 19527, 24054, 28582, 33111, 37638, 42166, 46694, 51222, 55750, 60278, 64806, 69333, 73862, 78390, 82917, 87446, 91973, 96501, 101029, 105557, 110085, 114612, 119141, 123669, 128196, 132725, 137252, 141780, 146309, 150836, 155364, 159892, 164420, 168948, 173476, 178004, 182531, 187060, 191589, 196115, 200645, 205172, 209700, 214229, 218756, 223284, 227812, 232340, 236868, 241396]
    hit0 = 4


class 技能17(主动技能):
    名称 = "幻鬼：奈落"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 20
    MP = [334, 935]
    无色消耗 = 2
    data0 = [0, 16693, 18388, 20082, 21775, 23469, 25163, 26855, 28549, 30243, 31937, 33630, 35324, 37019, 38712, 40405, 42099, 43793, 45486, 47180, 48873, 50566, 52260, 53954, 55649, 57342, 59035, 60729, 62423, 64116, 65810, 67504, 69196, 70890, 72584, 74279, 75972, 77666, 79360, 81052, 82746, 84440, 86134, 87827, 89521, 91214, 92908, 94602, 96296, 97990, 99683]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.22
        self.CDR *= 0.85


class 技能18(主动技能):
    名称 = "共鸣：聚渊"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [686, 1440]
    无色消耗 = 3
    data0 = [0, 4280, 4715, 5149, 5583, 6017, 6451, 6884, 7320, 7754, 8188, 8623, 9056, 9491, 9926, 10360, 10793, 11228, 11663, 12097, 12531, 12965, 13399, 13834, 14269, 14702, 15136, 15571, 16006, 16439, 16874, 17308, 17741, 18177, 18611, 19045, 19480, 19913, 20347, 20782, 21217, 21650, 22084, 22519, 22954, 23387, 23822, 24256, 24690, 25126, 25559]
    hit0 = 1
    data1 = [0, 17122, 18858, 20595, 22333, 24070, 25807, 27543, 29281, 31019, 32756, 34491, 36230, 37967, 39704, 41440, 43178, 44915, 46652, 48388, 50126, 51863, 53600, 55336, 57074, 58811, 60548, 62284, 64022, 65759, 67496, 69233, 70970, 72707, 74444, 76181, 77918, 79656, 81393, 83130, 84867, 86604, 88341, 90078, 91816, 93552, 95289, 97026, 98764, 100500, 102237]
    hit1 = 1
    data2 = [0, 21402, 23574, 25745, 27917, 30087, 32259, 34430, 36602, 38773, 40944, 43116, 45287, 47459, 49630, 51801, 53971, 56143, 58315, 60486, 62657, 64828, 67000, 69171, 71343, 73514, 75685, 77857, 80028, 82200, 84370, 86542, 88713, 90885, 93057, 95227, 97399, 99569, 101741, 103911, 106083, 108255, 110426, 112598, 114768, 116940, 119111, 121283, 123455, 125625, 127797]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power2 = 1.36 * 1.20


class 技能19(主动技能):
    名称 = "幻鬼：大回天"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [568, 4402]
    无色消耗 = 3
    data0 = [0, 19932, 21954, 23976, 25997, 28021, 30042, 32064, 34086, 36110, 38131, 40153, 42175, 44196, 46220, 48241, 50264, 52285, 54308, 56330, 58353, 60374, 62396, 64418, 66441, 68463, 70485, 72507, 74530, 76551, 78573, 80595, 82617, 84640, 86662, 88684, 90705, 92728, 94750, 96773, 98794, 100817, 102838, 104862, 106883, 108905, 110927, 112949, 114972, 116994, 119016]
    hit0 = 3

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.36

    def 等效百分比(self, **argv):
        if self.等级 >= 9:
            return super().等效百分比(**argv) * 1.1
        return super().等效百分比(**argv)


class 技能20(主动技能):
    名称 = "裂魂乱舞"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [823, 6172]
    无色消耗 = 5
    data0 = [0, 4278, 4712, 5145, 5579, 6014, 6447, 6881, 7316, 7749, 8183, 8617, 9051, 9485, 9918, 10353, 10787, 11220, 11654, 12089, 12522, 12956, 13391, 13824, 14258, 14692, 15126, 15560, 15994, 16428, 16862, 17296, 17729, 18164, 18598, 19031, 19466, 19900, 20333, 20767, 21202, 21635, 22069, 22504, 22937, 23371, 23805, 24239, 24673, 25107, 25541]
    hit0 = 1
    data1 = [0, 12833, 14134, 15436, 16738, 18040, 19342, 20644, 21946, 23248, 24549, 25851, 27152, 28454, 29756, 31059, 32361, 33662, 34964, 36266, 37568, 38870, 40172, 41474, 42775, 44077, 45379, 46681, 47983, 49285, 50587, 51888, 53190, 54492, 55794, 57096, 58398, 59700, 61001, 62303, 63606, 64908, 66210, 67512, 68814, 70116, 71417, 72719, 74021, 75323, 76625]
    hit1 = 1
    data2 = [0, 17110, 18846, 20581, 22318, 24054, 25789, 27525, 29261, 30996, 32732, 34469, 36204, 37940, 39675, 41411, 43148, 44882, 46620, 48356, 50091, 51827, 53563, 55298, 57035, 58771, 60506, 62242, 63978, 65713, 67449, 69185, 70921, 72657, 74392, 76128, 77865, 79601, 81337, 83073, 84808, 86544, 88280, 90015, 91752, 93488, 95223, 96959, 98694, 100430, 102166]
    hit2 = 1
    data3 = [0, 10693, 11779, 12863, 13948, 15033, 16118, 17202, 18288, 19373, 20458, 21542, 22627, 23712, 24797, 25883, 26967, 28052, 29137, 30222, 31306, 32392, 33476, 34562, 35646, 36731, 37815, 38900, 39987, 41071, 42156, 43240, 44326, 45410, 46496, 47580, 48665, 49750, 50835, 51919, 53004, 54090, 55175, 56260, 57344, 58429, 59514, 60600, 61684, 62769, 63853]
    hit3 = 2
    data4 = [0, 29943, 32981, 36018, 39056, 42094, 45131, 48169, 51207, 54244, 57283, 60321, 63358, 66396, 69433, 72471, 75509, 78546, 81584, 84622, 87659, 90698, 93735, 96773, 99811, 102848, 105886, 108924, 111961, 114999, 118037, 121074, 124113, 127150, 130188, 133226, 136263, 139301, 142339, 145376, 148414, 151451, 154489, 157528, 160565, 163603, 166641, 169678, 172716, 175754, 178791]
    hit4 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 0
        self.hit1 = 0
        self.hit2 = 0
        self.power3 = 2.11
        self.power4 = 2.3


class 技能21(主动技能):
    名称 = "鬼隐·夜奈落"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2329, 4658]
    无色消耗 = 10
    data0 = [0, 28301, 34862, 41425, 47988, 54550, 61113, 67675, 74238, 80800, 87363, 93925, 100489, 107051, 113613, 120176, 126738, 133301, 139863, 146426, 152989, 159552, 166114, 172677, 179239, 185801, 192364, 198925, 205489, 212051, 218614, 225176, 231739, 238301, 244863, 251426, 257988, 264552, 271114, 277677, 284239, 290802, 297364, 303927, 310490, 317052, 323615, 330177, 336740, 343302, 349865]
    hit0 = 1
    data1 = [0, 28301, 34862, 41425, 47988, 54550, 61113, 67675, 74238, 80800, 87363, 93925, 100489, 107051, 113613, 120176, 126738, 133301, 139863, 146426, 152989, 159552, 166114, 172677, 179239, 185801, 192364, 198925, 205489, 212051, 218614, 225176, 231739, 238301, 244863, 251426, 257988, 264552, 271114, 277677, 284239, 290802, 297364, 303927, 310490, 317052, 323615, 330177, 336740, 343302, 349865]
    hit1 = 1
    data2 = [0, 28301, 34862, 41425, 47988, 54550, 61113, 67675, 74238, 80800, 87363, 93925, 100489, 107051, 113613, 120176, 126738, 133301, 139863, 146426, 152989, 159552, 166114, 172677, 179239, 185801, 192364, 198925, 205489, 212051, 218614, 225176, 231739, 238301, 244863, 251426, 257988, 264552, 271114, 277677, 284239, 290802, 297364, 303927, 310490, 317052, 323615, 330177, 336740, 343302, 349865]
    hit2 = 1
    data3 = [0, 103769, 127832, 151895, 175957, 200020, 224083, 248145, 272208, 296270, 320333, 344396, 368458, 392521, 416584, 440646, 464709, 488772, 512833, 536896, 560960, 585022, 609085, 633147, 657209, 681273, 705335, 729398, 753460, 777522, 801585, 825649, 849710, 873773, 897836, 921898, 945962, 970024, 994086, 1018149, 1042211, 1066274, 1090337, 1114399, 1138462, 1162525, 1186586, 1210650, 1234713, 1258775, 1282838]
    hit3 = 1


class 技能22(主动技能):
    名称 = "无式·极影剑"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [1097, 8229]
    无色消耗 = 7
    data0 = [0, 7948, 8754, 9560, 10367, 11174, 11979, 12787, 13592, 14399, 15206, 16012, 16819, 17624, 18431, 19237, 20044, 20850, 21656, 22463, 23269, 24075, 24881, 25689, 26495, 27301, 28107, 28914, 29720, 30527, 31332, 32140, 32945, 33752, 34557, 35365, 36172, 36977, 37785, 38590, 39397, 40202, 41010, 41816, 42622, 43428, 44235, 45042, 45848, 46654, 47461]
    hit0 = 5
    data1 = [0, 7948, 8754, 9560, 10367, 11174, 11979, 12787, 13592, 14399, 15206, 16012, 16819, 17624, 18431, 19237, 20044, 20850, 21656, 22463, 23269, 24075, 24881, 25689, 26495, 27301, 28107, 28914, 29720, 30527, 31332, 32140, 32945, 33752, 34557, 35365, 36172, 36977, 37785, 38590, 39397, 40202, 41010, 41816, 42622, 43428, 44235, 45042, 45848, 46654, 47461]
    hit1 = 5
    data2 = [0, 39743, 43774, 47805, 51838, 55869, 59901, 63934, 67966, 71997, 76030, 80062, 84092, 88124, 92157, 96188, 100220, 104253, 108285, 112316, 116349, 120381, 124411, 128443, 132476, 136507, 140539, 144572, 148604, 152635, 156668, 160699, 164730, 168762, 172795, 176826, 180858, 184891, 188923, 192954, 196986, 201018, 205049, 209081, 213114, 217145, 221177, 225210, 229242, 233272, 237304]
    hit2 = 5
    data3 = [0, 39743, 43774, 47805, 51838, 55869, 59901, 63934, 67966, 71997, 76030, 80062, 84092, 88124, 92157, 96188, 100220, 104253, 108285, 112316, 116349, 120381, 124411, 128443, 132476, 136507, 140539, 144572, 148604, 152635, 156668, 160699, 164730, 168762, 172795, 176826, 180858, 184891, 188923, 192954, 196986, 201018, 205049, 209081, 213114, 217145, 221177, 225210, 229242, 233272, 237304]
    hit3 = 1
    data4 = [0, 13372, 14730, 16087, 17444, 18800, 20156, 21513, 22871, 24228, 25584, 26940, 28297, 29654, 31012, 32368, 33724, 35081, 36438, 37796, 39152, 40508, 41865, 43222, 44579, 45935, 47293, 48649, 50005, 51363, 52719, 54077, 55433, 56789, 58147, 59503, 60860, 62216, 63573, 64931, 66287, 67644, 69000, 70356, 71715, 73071, 74428, 75784, 77140, 78499, 79855]
    hit4 = 1
    data5 = [0, 66868, 73652, 80436, 87219, 94003, 100787, 107570, 114354, 121138, 127922, 134706, 141490, 148273, 155057, 161841, 168625, 175409, 182193, 188976, 195760, 202544, 209328, 216112, 222896, 229680, 236464, 243248, 250032, 256816, 263600, 270384, 277167, 283951, 290735, 297519, 304303, 311087, 317870, 324653, 331437, 338221, 345005, 351789, 358572, 365356, 372140, 378924, 385708, 392492, 399275]
    hit5 = 0

    形态 = ["共鸣", "幻鬼"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == "共鸣":
            self.hit0 = 5
            self.hit1 = 5
            self.hit2 = 1
            self.hit3 = 1
            self.hit4 = 0
            self.hit5 = 0
        else:
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 0
            self.hit3 = 0
            self.hit4 = 5
            self.hit5 = 1
        pass


class 技能23(主动技能):
    名称 = "灭魂极影剑·止煞"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [3752, 7505]
    无色消耗 = 15
    data0 = [0, 31308, 38569, 45829, 53089, 60349, 67609, 74869, 82128, 89389, 96649, 103908, 111168, 118429, 125689, 132949, 140210, 147469, 154729, 161990, 169250, 176510, 183769, 191030, 198290, 205549, 212810, 220070, 227329, 234590, 241850, 249110, 256370, 263630, 270890, 278150, 285411, 292671, 299930, 307190, 314451, 321711, 328970, 336231, 343490, 350750, 358011, 365271, 372531, 379790, 387051]
    hit0 = 1
    data1 = [0, 8944, 11019, 13094, 15167, 17242, 19316, 21390, 23465, 25539, 27613, 29688, 31762, 33836, 35911, 37985, 40059, 42134, 44208, 46282, 48357, 50431, 52505, 54579, 56654, 58728, 60802, 62877, 64951, 67025, 69099, 71174, 73248, 75322, 77397, 79471, 81545, 83620, 85694, 87768, 89843, 91917, 93991, 96066, 98140, 100214, 102289, 104363, 106437, 108512, 110586]
    hit1 = 7
    data2 = [0, 31308, 38569, 45829, 53089, 60349, 67609, 74869, 82128, 89389, 96649, 103908, 111168, 118429, 125689, 132949, 140210, 147469, 154729, 161990, 169250, 176510, 183769, 191030, 198290, 205549, 212810, 220070, 227329, 234590, 241850, 249110, 256370, 263630, 270890, 278150, 285411, 292671, 299930, 307190, 314451, 321711, 328970, 336231, 343490, 350750, 358011, 365271, 372531, 379790, 387051]
    hit2 = 1
    data3 = [0, 26836, 33059, 39282, 45504, 51727, 57950, 64173, 70396, 76619, 82842, 89065, 95288, 101511, 107734, 113957, 120180, 126403, 132626, 138849, 145072, 151295, 157518, 163741, 169962, 176185, 182408, 188631, 194854, 201077, 207299, 213522, 219745, 225968, 232191, 238414, 244637, 250860, 257083, 263306, 269529, 275752, 281975, 288197, 294420, 300643, 306866, 313089, 319312, 325535, 331758]
    hit3 = 7
    data4 = [0, 41745, 51424, 61104, 70785, 80466, 90145, 99825, 109506, 119186, 128865, 138545, 148226, 157905, 167585, 177265, 186947, 196626, 206306, 215986, 225667, 235346, 245026, 254706, 264386, 274066, 283746, 293428, 303107, 312787, 322467, 332148, 341827, 351507, 361187, 370866, 380547, 390227, 399907, 409588, 419268, 428948, 438628, 448308, 457988, 467668, 477347, 487028, 496708, 506388, 516068]
    hit4 = 1
    data5 = [0, 41745, 51424, 61104, 70785, 80466, 90145, 99825, 109506, 119186, 128865, 138545, 148226, 157905, 167585, 177265, 186947, 196626, 206306, 215986, 225667, 235346, 245026, 254706, 264386, 274066, 283746, 293428, 303107, 312787, 322467, 332148, 341827, 351507, 361187, 370866, 380547, 390227, 399907, 409588, 419268, 428948, 438628, 448308, 457988, 467668, 477347, 487028, 496708, 506388, 516068]
    hit5 = 1
    data6 = [0, 125236, 154275, 183315, 212356, 241397, 270437, 299476, 328516, 357558, 386598, 415637, 444678, 473718, 502758, 531798, 560839, 589879, 618919, 647958, 677000, 706040, 735080, 764119, 793160, 822200, 851241, 880282, 909321, 938361, 967401, 996443, 1025482, 1054522, 1083562, 1112603, 1141642, 1170683, 1199723, 1228764, 1257803, 1286843, 1315885, 1344925, 1373964, 1403004, 1432045, 1461086, 1490125, 1519165, 1548206]
    hit6 = 1


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'ghostblade'
        self.名称 = '极诣·剑影'
        self.角色 = '鬼剑士(男)'

        self.职业 = '剑影'
        self.武器选项 = ['太刀']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '太刀'
        self.防具类型 = '皮甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.06

        super().__init__(equVersion)

    def set_skill_info(self, info):
        super().set_skill_info(info, rune_start_lv=15)

    def 技能倍率加成(self, min: int, max: int, x: float, exc=[], type="all",excName=[]) -> None:
        for i in self.技能栏:
            if i.所在等级 >= min and i.所在等级 <= max and i.所在等级 not in exc and i.名称 not in excName:
                if i.是否有伤害 == 1:
                    if type == "all" or (type == "active" and i.是否主动 == 1):
                        i.倍率 *= (1 + x * self.技能伤害增加增幅)
                if i.名称 == '鬼连斩：极' and type == "all":
                    i.额外加成 *= (1 + x * self.技能伤害增加增幅)

    def 技能队列设置(self, setinfo):
        self.技能队列 = []
        for item in setinfo:
            self.技能队列.append({
                '名称': item['name'],
                '无色消耗': self.get_skill_by_name(item['name']).无色消耗,
                '倍率': 1.0,
                '等级变化': 0,
                'CDR': 1.0,
                '恢复': 0,
                '形态': item.get('mode', '')
            })
            if item['name'] == '鬼连斩':
                self.技能队列.append({
                    '名称': '鬼连斩：极',
                    '无色消耗': self.get_skill_by_name(item['name']).无色消耗,
                    '倍率': 1.0,
                    '等级变化': 0,
                    'CDR': 1.0,
                    '恢复': 0,
                    '形态': ''
                })

    def 伤害计算(self):

        data = super().伤害计算()
        skill_dict = data['skills']


        鬼连斩极 = self.get_skill_by_name("鬼连斩：极")
        鬼连斩 = self.get_skill_by_name("鬼连斩")
        damage = 0
        count = 0
        if '鬼连斩' in skill_dict and 鬼连斩极.等级 > 0 and 鬼连斩.等级 > 0:
            for index in range(0,len(self.技能队列)):
                # 特殊处理
                if self.技能队列[index]['名称'] == '鬼连斩':
                    count += 1
                    额外倍率 = self.技能队列[index+1]['倍率']
                    倍率 = 鬼连斩极.获取百分比(鬼连斩.等级) * (1 + 鬼连斩.TP等级 *
                                       鬼连斩.TP成长) * 鬼连斩.被动倍率 * 额外倍率
            # count = skill_dict['鬼连斩']['count']
                    temp = 倍率 * self.伤害指数 * (self.伤害比例.get("直伤", 0.0)) / 100
                    from core.basic.equipment import get_global_data
                    for item in ['中毒', '灼伤', '感电', '出血']:
                        cur = item
                        pa = ''
                        if item == '中毒':
                            pa = 'zd_rate'
                        if item == '出血':
                            pa = 'cx_rate'
                        if item == '感电':
                            pa = 'gd_rate'
                        if item == '灼伤':
                            pa = 'zs_rate'
                        if item == '灼伤' and '灼伤' in get_global_data("state_type", self.equVersion) and ('冰冻' in get_global_data("get_state_type", self.equVersion) or ('冰冻' in get_global_data("state_type", self.equVersion) and self.check_equ_by_name("永眠前的准备"))):
                            pa = 'zs_bd_rate'
                            cur = '灼伤破冰'
                        保有率 = 0
                        异常基础加成 = 1.0
                        异常结算加成 = 1.0
                        装备加成异常结算 = 1.0
                        if pa == 'zs_bd_rate':
                            保有率 = self.异常保有率计算(pa,cur)
                            异常基础加成 = 1.0
                            异常结算加成 = self.异常基础加成['灼伤破冰']
                            装备加成异常结算 = self.异常结算加成.get(cur,1.0)
                        else:
                            保有率 = self.异常保有率计算(pa,cur)
                            # 叠层处理
                            异常基础加成 = 1+ (self.异常基础加成.get(cur,1.0)-1) * get_global_data(pa,self.equVersion,1.0)
                            异常结算加成 = 1.0
                            装备加成异常结算 = self.异常结算加成.get(cur,1.0)
                        系数 = self.伤害系数.get(item, 0.0) * ( (1-保有率) * 异常基础加成 + 保有率 * 异常基础加成 * 异常结算加成 * 装备加成异常结算)
                        # 直伤转换的异常处理：直伤伤害*异常比例*异常系数
                        temp += 倍率 * self.伤害指数 * self.伤害比例.get(item, 0.0) * 系数 / 100
                    damage += temp
            data['skills']['鬼连斩：极'] = {
                'name': '鬼连斩：极',
                'rate': 鬼连斩.被动倍率,
                'cd': skill_dict['鬼连斩']['cd'],
                'mp': 0,
                'damage': damage,
                'count': count,
                'level': 1,
                'cosume_cube_frag': 0,
                'cd_o': skill_dict['鬼连斩']['cd_o'],
                'atk_rate': 鬼连斩极.获取百分比(鬼连斩.等级) * (1 + 鬼连斩.TP等级 * 鬼连斩.TP成长)
            }
        data['total_data'] += damage
        return data

    def get_acitve_skill_detail(self, skill, temp_info, temp_char, weapon, ratio, skill_info):
        if skill.是否有伤害:
            if len(skill.形态) == 0:
                skill.形态 = ['']
            for 形态 in skill.形态:
                original = 0
                for i in ['直伤', '中毒', '灼伤', '感电', '出血']:
                    original += skill.等效百分比(
                        char=temp_info, 武器类型=weapon, 形态=形态, 伤害类型=i)
                skill_info["skills_active"].append({
                    "name": skill.名称,
                    "need_level": skill.所在等级,
                    "lv": skill.等级,
                    "data": original*ratio*skill.被动倍率,
                    "cd": skill.等效CD(武器类型=weapon, 输出类型=temp_info.类型),
                    "mode": 形态,
                    "cost": skill.无色消耗,
                    "tp": skill.TP等级
                })
                if skill.名称 == "鬼连斩":
                    鬼连斩极 = temp_info.get_skill_by_name("鬼连斩：极").获取百分比(skill.等级)
                    original += 鬼连斩极*(1+skill.TP等级*skill.TP成长)
                    skill_info["skills_active"].append({
                        "name": skill.名称,
                        "need_level": skill.所在等级,
                        "lv": skill.等级,
                        "data": original*ratio*skill.被动倍率,
                        "cd": skill.等效CD(武器类型=weapon, 输出类型=temp_info.类型),
                        "mode": "极",
                        "cost": skill.无色消耗,
                        "tp": skill.TP等级
                    })
                if skill.是否有护石 == 1:
                    temp = temp_char.get_skill_by_name(skill.名称)
                    cp = 0
                    for i in ['直伤', '中毒', '灼伤', '感电', '出血']:
                        cp += temp.等效百分比(char=temp_char,
                                         武器类型=weapon, 形态=形态, 伤害类型=i)
                    skill_info["skills_cp"].append({
                        "name": skill.名称,
                        "need_level": skill.所在等级,
                        "lv": skill.等级,
                        "data": cp*ratio*temp.被动倍率,
                        "cd": temp.等效CD(武器类型=weapon, 输出类型=temp_info.类型),
                        "original_data": original*ratio*skill.被动倍率,
                        "original_cd": skill.等效CD(武器类型=weapon, 输出类型=temp_info.类型),
                        "mode": 形态,
                        "cost": temp.无色消耗,
                        "tp": skill.TP等级
                    })
                pass
            pass
